iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
自我挑戰組

自我挑戰Ruby系列 第 9

Day 9 - 字串1

  • 分享至 

  • xImage
  •  

引號

建立字串時可以用單引號或雙引號把字包住,例如:

puts 'Hello World'

puts "Hello World"

上面的單引號與雙引號使用下,沒有什麼不同的,

但在Ruby中,究竟單引號和雙引號有什麼不同?

puts 'Arance\'s age'

puts "Arance’s age"

在單引號內的’s前面必須要使用反斜線()作為跳脫序列。

跳脫序列

跳脫序列(escape sequence)可以參考維基百科上:https://zh.wikipedia.org/zh-tw/转义序列

主要是因為無法將代碼直接寫出時所採用的方式,在跳脫時所使用的字元組合。

會藉由反斜線()來做一個跳脫序列,例如:\n 表示換行。

那在Ruby中單引號只允許可以使用兩個跳脫字元:

' → 單引號

\ → 單斜線

然而在Ruby中雙引號比起單引號,可使用的跳脫字元來的更多:

" → 雙引號

\ → 單斜線

\n → 換行

\t → Tab鍵

\r → Return鍵

\s → 空白鍵

\b → Backspace鍵

\a → 產生警示音

引號的替代者

可以藉由 %q 或 %Q 來處理過多引號,避免使用跳脫字元。

單引號(Single quotation marks)可以使用 %q

雙引號(Double quotation marks)可以使用 %Q

相信使用Q的原因也是因為英文的部分取引號(Quotation marks)。

https://ithelp.ithome.com.tw/upload/images/20230924/20162251Es1ifo6ddI.png

串接與分割

串接的部分我們會以加號(+)作為接點,或用#{變數} 將變數帶入,以及也可以用陣列以及join作為組合。

https://ithelp.ithome.com.tw/upload/images/20230924/20162251Ssa4S6XmAj.png

在談論分割的部分前,首先先針對取字的部分,我們必須先瞭解到:

在Ruby的世界第一個位置代表的是0,也就是位置的起始值為0。

最後一個位置代表為-1,所以想從後面取回來可以使用負數。

我們也可以藉由0..-1 (可以從第0個位置取到倒數第一個位置的字)
https://ithelp.ithome.com.tw/upload/images/20230924/20162251xphO9F3ic0.png

分割的部分,我們可以藉由split方法做拆解字元,.split會以空白做區隔拆成陣列,

而.split(””)會每個字都做拆解,連空白字都算一個字,拆成陣列形式。
https://ithelp.ithome.com.tw/upload/images/20230924/20162251igVq7DGDJp.png

Day 9 結語

在這篇介紹了單引號跟雙引號的差異,還有其實單引號的部分,

串接不會做代入變數,所以上面的例子會是 puts "我叫#{name}",而不是使用單引號來寫。

既然單引號不會做代入變數的效果,所以也不會使用%q(),而是使用%Q()。

https://ithelp.ithome.com.tw/upload/images/20230924/20162251BylApFNVr9.png

以及如何串接與分割字元,但總覺得字串的部分還有很多還沒提及,但學習總是那麼學海無涯。

學習到split 和join兩個方法,下一篇會介紹更多字串的用法。


上一篇
Day 8 - 數字
下一篇
Day 10 - 字串2
系列文
自我挑戰Ruby30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言